﻿Imports System.Runtime.Serialization
Imports System.ServiceModel
Imports WSEntidades
Imports WSNegocios

' NOTA: puede usar el comando "Cambiar nombre" del menú contextual para cambiar el nombre de clase "ServicioCatalogos" en el código, en svc y en el archivo de configuración a la vez.
Public Class ServicioCatalogos
    Implements IServicioCatalogos

#Region "CatalogoSucursalesOK"

    Public Function RegistrarSucursal(ByVal tokenConexion As String, ByVal sucursal As SucursalesBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarSucursal
        Dim sucBL As SucursalesBL = New SucursalesBL()
        detResp = New DetalleRespuesta()
        Try
            Return (sucBL.RegistrarSucursal(tokenConexion, sucursal, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar la sucursal: " & ex.Message)
            Return False
        Finally
            sucBL = Nothing
        End Try
    End Function

    Public Function ActualizaSucursal(ByVal tokenConexion As String, ByVal sucursal As SucursalesBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaSucursal
        Dim sucBL As SucursalesBL = New SucursalesBL
        detResp = New DetalleRespuesta()
        Try
            Return (sucBL.ActualizaSucursal(tokenConexion, sucursal, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos de la Sucursal: " & ex.Message)
            Return False
        Finally
            sucBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusSucursal(ByVal tokenConexion As String, ByVal claveSuc As String,
                                          ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusSucursal
        Dim sucBL As SucursalesBL = New SucursalesBL
        detResp = New DetalleRespuesta()
        Try
            Return (sucBL.CambiaEstatusSucursal(tokenConexion, claveSuc, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar estatus de la Sucursal: " & ex.Message)
            Return False
        Finally
            sucBL = Nothing
        End Try
    End Function

    Public Function GetSucursal(ByVal tokenConexion As String, ByVal ClaveSuc As String, ByRef detResp As DetalleRespuesta) As SucursalesBE Implements IServicioCatalogos.GetSucursal
        Dim sucBL As SucursalesBL = New SucursalesBL
        detResp = New DetalleRespuesta()
        Try
            Return sucBL.GetSucursal(tokenConexion, ClaveSuc, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos de la Sucursal: " & ex.Message)
            Return Nothing
        Finally
            sucBL = Nothing
        End Try
    End Function

    Public Function GetListadoSucursales(ByVal tokenConexion As String, ByVal nombreSuc As String,
                                         ByVal tipoStatus As Enumeraciones.estatusParaBusquedas, ByRef detResp As DetalleRespuesta) As List(Of SucursalesBE) Implements IServicioCatalogos.GetListadoSucursales
        Dim sucBL As SucursalesBL = New SucursalesBL
        detResp = New DetalleRespuesta()
        Try
            Return sucBL.GetListadoSucursales(tokenConexion, nombreSuc, tipoStatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos de las Sucursales: " & ex.Message)
            Return Nothing
        Finally
            sucBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoEmpresaOK"
    Public Function ActualizaDatosFiscales(ByVal tokenConexion As String, ByVal Empresa As empresaBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaDatosFiscales
        Dim empBL As EmpresasBL = New EmpresasBL
        detResp = New DetalleRespuesta()
        Try
            Return (empBL.ActualizaDatosFiscales(tokenConexion, Empresa, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos fiscales: " & ex.Message)
            Return False
        Finally
            empBL = Nothing
        End Try
    End Function

    Public Function GetEmpresa(ByVal tokenConexion As String, ByVal Rfc As String, ByRef detResp As DetalleRespuesta) As empresaBE Implements IServicioCatalogos.GetEmpresa
        Dim empBL As EmpresasBL = New EmpresasBL
        Dim empBe As empresaBE
        detResp = New DetalleRespuesta()
        Try
            empBe = empBL.GetEmpresa(tokenConexion, Rfc, detResp)
            Return empBe
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos de la empresa: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            empBe = Nothing
            empBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoUnidadDeMedidaOK"
    Public Function RegistrarUnidadDeMedida(ByVal tokenConexion As String, ByVal UdeM As UdeMBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarUnidadDeMedida
        Dim udemBL As UdeMBL = New UdeMBL()
        detResp = New DetalleRespuesta()
        Try
            Return (udemBL.RegistrarUnidadDeMedida(tokenConexion, UdeM, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar la unidad de medida: " & ex.Message & vbCrLf)
            Return False
        Finally
            udemBL = Nothing
        End Try
    End Function

    Public Function ActualizaUdeM(ByVal tokenConexion As String, ByVal UdeM As UdeMBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaUdeM
        Dim UdeMBL As UdeMBL = New UdeMBL
        detResp = New DetalleRespuesta()
        Try
            Return (UdeMBL.ActualizaUdeM(tokenConexion, UdeM, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos de la Unidad de Medida: " & ex.Message & vbCrLf)
            Return False
        Finally
            UdeMBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusUnidadMedida(ByVal tokenConexion As String, ByVal IdUdeM As Integer, ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean _
        Implements IServicioCatalogos.CambiaEstatusUnidadMedida
        Dim UdeMBL As UdeMBL = New UdeMBL
        detResp = New DetalleRespuesta()
        Try
            Return (UdeMBL.cambiaEstatusUnidadMedida(tokenConexion, IdUdeM, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus de la Unidad de Medida: " & ex.Message & vbCrLf)
            Return False
        Finally
            UdeMBL = Nothing
        End Try
    End Function

    Public Function GetUdeM(ByVal tokenConexion As String, ByVal IdUdeM As Integer, ByRef detResp As DetalleRespuesta) As UdeMBE Implements IServicioCatalogos.GetUdeM
        Dim UdeMBL As UdeMBL = New UdeMBL
        detResp = New DetalleRespuesta()
        Try
            Return UdeMBL.GetUdeM(tokenConexion, IdUdeM, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener información de la Unidad de Medida: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            UdeMBL = Nothing
        End Try
    End Function

    Public Function GetListadoUdeM(ByVal tokenConexion As String, ByVal DesUdeM As String, ByVal estatus As Enumeraciones.estatusParaBusquedas,
                                   ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                   ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                   ByRef pTotalRegistros As Integer,
                                   ByRef detResp As DetalleRespuesta) As List(Of UdeMBE) Implements IServicioCatalogos.GetListadoUdeM
        Dim UdeMBL As UdeMBL = New UdeMBL
        Dim ListUdeMBE As List(Of UdeMBE)
        detResp = New DetalleRespuesta()
        Try
            Return UdeMBL.GetListadoUdeM(tokenConexion, DesUdeM, estatus, pRegistroInicial, pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener listado de las unidades de medida: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            ListUdeMBE = Nothing
            UdeMBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoFormasdePagoOK"

    Public Function RegistrarFormapag(ByVal tokenConexion As String, ByVal Formapag As FormapagBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarFormapag
        Dim forpagBL As FormapagBL = New FormapagBL()
        detResp = New DetalleRespuesta()
        Try
            Return (forpagBL.RegistrarFormapag(tokenConexion, Formapag, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar la forma de pago: " & ex.Message & vbCrLf)
            Return False
        Finally
            forpagBL = Nothing
        End Try
    End Function

    Public Function ActualizaFormapag(ByVal tokenConexion As String, ByVal Formapag As FormapagBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaFormapag
        Dim forpagBL As FormapagBL = New FormapagBL
        detResp = New DetalleRespuesta()
        Try
            Return (forpagBL.ActualizaFormapag(tokenConexion, Formapag, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos de la Forma de Pago: " & ex.Message & vbCrLf)
            Return False
        Finally
            forpagBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusFormaPago(ByVal tokenConexion As String, ByVal IdFormaPag As Integer, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusFormaPago
        Dim forpagBL As FormapagBL = New FormapagBL
        detResp = New DetalleRespuesta()
        Try
            Return (forpagBL.CambiaEstatusFormaPago(tokenConexion, IdFormaPag, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus de la Forma de Pago: " & ex.Message & vbCrLf)
            Return False
        Finally
            forpagBL = Nothing
        End Try
    End Function

    Public Function GetFormapag(ByVal tokenConexion As String, ByVal IdFormaP As Integer, ByRef detResp As DetalleRespuesta) As FormapagBE Implements IServicioCatalogos.GetFormapag
        Dim forpagBL As FormapagBL = New FormapagBL
        detResp = New DetalleRespuesta()
        Try
            Return forpagBL.GetFormapag(tokenConexion, IdFormaP, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos de la Forma de Pago: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            forpagBL = Nothing
        End Try
    End Function

    Public Function GetListadoFormapagxtexto(ByVal tokenConexion As String, ByVal DesFormaP As String, ByVal tipoEstatus As Enumeraciones.estatusParaBusquedas,
                                             ByRef detResp As DetalleRespuesta) As List(Of FormapagBE) Implements IServicioCatalogos.GetListadoFormapag
        Dim forpagBL As FormapagBL = New FormapagBL
        detResp = New DetalleRespuesta()
        Try
            Return forpagBL.GetListadoFormapagxtexto(tokenConexion, DesFormaP, tipoEstatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos de la Forma de Pago: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            forpagBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoMonedaOK"
    Public Function RegistrarMoneda(ByVal tokenConexion As String, ByVal Moneda As MonedaBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarMoneda
        Dim MonedaBL As MonedaBL = New MonedaBL()
        detResp = New DetalleRespuesta()
        Try
            Return (MonedaBL.RegistrarMoneda(tokenConexion, Moneda, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar la moneda: " & ex.Message & vbCrLf)
            Return False
        Finally
            MonedaBL = Nothing
        End Try
    End Function

    Public Function ActualizaMoneda(ByVal tokenConexion As String, ByVal Moneda As MonedaBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaMoneda
        Dim MonedaBL As MonedaBL = New MonedaBL
        detResp = New DetalleRespuesta()
        Try
            Return (MonedaBL.ActualizaMoneda(tokenConexion, Moneda, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos de la Moneda: " & ex.Message & vbCrLf)
            Return False
        Finally
            MonedaBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusMoneda(ByVal tokenConexion As String, ByVal IdMoneda As Integer,
                                        ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusMoneda
        Dim MonedaBL As MonedaBL = New MonedaBL
        detResp = New DetalleRespuesta()
        Try
            Return (MonedaBL.CambiaEstatusMoneda(tokenConexion, IdMoneda, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus de la Moneda: " & ex.Message & vbCrLf)
            Return False
        Finally
            MonedaBL = Nothing
        End Try
    End Function

    Public Function GetMoneda(ByVal tokenConexion As String, ByVal IdMoneda As Integer, ByRef detResp As DetalleRespuesta) As MonedaBE Implements IServicioCatalogos.GetMoneda
        Dim MonedaBL As MonedaBL = New MonedaBL
        detResp = New DetalleRespuesta()
        Try
            Return MonedaBL.GetMoneda(tokenConexion, IdMoneda, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener información de la Moneda: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            MonedaBL = Nothing
        End Try
    End Function

    Public Function GetListadoMoneda(ByVal tokenConexion As String, ByVal DesMoneda As String, ByVal tipoEstatus As Enumeraciones.estatusParaBusquedas,
                                     ByRef detResp As DetalleRespuesta) As List(Of MonedaBE) Implements IServicioCatalogos.GetListadoMoneda
        Dim MonedaBL As MonedaBL = New MonedaBL
        detResp = New DetalleRespuesta()
        Try
            Return MonedaBL.GetListadoMoneda(tokenConexion, DesMoneda, tipoEstatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener listado de las monedas: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            MonedaBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoMetodosdePagoOK"

    Public Function RegistrarMetodopag(ByVal tokenConexion As String, ByVal Metodopag As MetodospagBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarMetodopag
        Dim metpagBL As MetodospagBL = New MetodospagBL()
        detResp = New DetalleRespuesta()
        Try
            Return (metpagBL.RegistrarMetodospag(tokenConexion, Metodopag, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar el metodo de pago: " & ex.Message & vbCrLf)
            Return False
        Finally
            metpagBL = Nothing
        End Try
    End Function

    Public Function ActualizaMetodopag(ByVal tokenConexion As String, ByVal Metodopag As MetodospagBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaMetodopag
        Dim metpagBL As MetodospagBL = New MetodospagBL
        detResp = New DetalleRespuesta()
        Try
            Return (metpagBL.ActualizaMetodospag(tokenConexion, Metodopag, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos del Metodo de Pago: " & ex.Message & vbCrLf)
            Return False
        Finally
            metpagBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusMetodoPago(ByVal tokenConexion As String, ByVal IdMetodo As Integer, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusMetodoPago
        Dim metpagBL As MetodospagBL = New MetodospagBL
        detResp = New DetalleRespuesta()
        Try
            Return (metpagBL.CambiaEstatusMetodoPago(tokenConexion, IdMetodo, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus del Método de Pago: " & ex.Message & vbCrLf)
            Return False
        Finally
            metpagBL = Nothing
        End Try
    End Function

    Public Function GetMetodopag(ByVal tokenConexion As String, ByVal IdMetodP As Integer, ByRef detResp As DetalleRespuesta) As MetodospagBE Implements IServicioCatalogos.GetMetodopag
        Dim metpagBL As MetodospagBL = New MetodospagBL
        detResp = New DetalleRespuesta()
        Try
            Return metpagBL.GetMetodopag(tokenConexion, IdMetodP, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Metodo de Pago: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            metpagBL = Nothing
        End Try
    End Function

    Public Function GetListadoMetodopag(ByVal tokenConexion As String, ByVal DesMetodoP As String, ByVal tipoEstatus As Enumeraciones.estatusParaBusquedas,
                                        ByRef detResp As DetalleRespuesta) As List(Of MetodospagBE) Implements IServicioCatalogos.GetListadoMetodopag
        Dim metpagBL As MetodospagBL = New MetodospagBL
        detResp = New DetalleRespuesta()
        Try
            Return metpagBL.GetListadoMetodospag(tokenConexion, DesMetodoP, tipoEstatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Listado de Metodos de Pago: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            metpagBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoSerieOK"
    Public Function RegistrarSerie(ByVal tokenConexion As String, ByVal Serie As SerieBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarSerie
        Dim SerieBL As SerieBL = New SerieBL()
        detResp = New DetalleRespuesta()
        Try
            Return (SerieBL.RegistrarSerie(tokenConexion, Serie, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar la serie: " & ex.Message)
            Return False
        Finally
            SerieBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusSerie(ByVal tokenConexion As String, ByVal Serie As String, ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusSerie
        Dim SerieBL As SerieBL = New SerieBL()
        detResp = New DetalleRespuesta()
        Try
            Return (SerieBL.CambiaEstatus(tokenConexion, Serie, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al cambiar estatus de la serie: " & ex.Message)
            Return False
        Finally
            SerieBL = Nothing
        End Try
    End Function

    Public Function AsignarNombreReporteASerie(ByVal tokenConexion As String, ByVal Serie As String,
                                         ByVal strNombreReporte As String, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.AsignarNombreReporteASerie
        Dim SerieBL As SerieBL = New SerieBL()
        detResp = New DetalleRespuesta()
        Try
            Return (SerieBL.AsignaReporte(tokenConexion, Serie, strNombreReporte, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al asignar Reporte a la serie: " & ex.Message)
            Return False
        Finally
            SerieBL = Nothing
        End Try
    End Function

    Public Function CambiaCertificado(ByVal tokenConexion As String, ByVal Serie As String, ByVal numCertif As String,
                                      ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaCertificadoASerie
        Dim SerieBL As SerieBL = New SerieBL()
        detResp = New DetalleRespuesta()
        Try
            Return (SerieBL.CambiaCertificado(tokenConexion, Serie, numCertif, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al cambiar Certificado para la serie: " & ex.Message)
            Return False
        Finally
            SerieBL = Nothing
        End Try
    End Function

    Public Function ConsumeFolioSig(ByVal tokenConexion As String, ByVal Serie As String, ByRef folio As Integer, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ConsumeFolioSig
        Dim SerieBL As SerieBL = New SerieBL
        detResp = New DetalleRespuesta()
        Try
            Return (SerieBL.ConsumeFolioSig(tokenConexion, Serie, folio, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al consumir folio siguiente de la Serie: " & ex.Message)
            Return False
        Finally
            SerieBL = Nothing
        End Try
    End Function

    Public Function GetSerie(ByVal tokenConexion As String, ByVal Serie As String, ByRef detResp As DetalleRespuesta) As SerieBE Implements IServicioCatalogos.GetSerie
        Dim SerieBL As SerieBL = New SerieBL
        detResp = New DetalleRespuesta()
        Try
            Return SerieBL.GetSerie(tokenConexion, Serie, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener información de la Serie: " & ex.Message)
            Return Nothing
        Finally
            SerieBL = Nothing
        End Try
    End Function

    Public Function GetListadoSerie(ByVal tokenConexion As String, ByVal tipoEstatus As Enumeraciones.estatusParaBusquedas, ByRef detResp As DetalleRespuesta) As List(Of SerieBE) Implements IServicioCatalogos.GetListadoSeries
        Dim SerieBL As SerieBL = New SerieBL
        detResp = New DetalleRespuesta()
        Try
            Return SerieBL.GetListadoSerie(tokenConexion, tipoEstatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener listado de las series: " & ex.Message)
            Return Nothing
        Finally
            SerieBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoFamiliasOK"

    Public Function RegistrarFamilia(ByVal tokenConexion As String, ByVal Familia As FamiliasBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarFamilia
        Dim famBL As FamiliasBL = New FamiliasBL()
        detResp = New DetalleRespuesta()
        Try
            Return (famBL.RegistrarFamilia(tokenConexion, Familia, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar la Familia: " & ex.Message)
            Return False
        Finally
            famBL = Nothing
        End Try
    End Function

    Public Function ActualizaFamilia(ByVal tokenConexion As String, ByVal Familia As FamiliasBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaFamilia
        Dim famBL As FamiliasBL = New FamiliasBL
        detResp = New DetalleRespuesta()
        Try
            Return (famBL.ActualizaFamilia(tokenConexion, Familia, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos de la Familia: " & ex.Message)
            Return False
        Finally
            famBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusFamilia(ByVal tokenConexion As String, ByVal Id As Integer, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusFamilia
        Dim famBL As FamiliasBL = New FamiliasBL
        detResp = New DetalleRespuesta()
        Try
            Return (famBL.CambiaEstatus(tokenConexion, Id, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus de la Familia: " & ex.Message & vbCrLf)
            Return False
        Finally
            famBL = Nothing
        End Try
    End Function

    Public Function GetFamilia(ByVal tokenConexion As String, ByVal IdFamilia As Integer, ByRef detResp As DetalleRespuesta) As FamiliasBE Implements IServicioCatalogos.GetFamilia
        Dim famBL As FamiliasBL = New FamiliasBL
        detResp = New DetalleRespuesta()
        Try
            Return famBL.GetFamilia(tokenConexion, IdFamilia, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos de la Familia: " & ex.Message)
            Return Nothing
        Finally
            famBL = Nothing
        End Try
    End Function

    Public Function GetListadoFamilia(ByVal tokenConexion As String, ByVal DesFamilia As String, ByVal ClaFamilia As String,
                                      ByVal Status As Enumeraciones.estatusParaBusquedas,
                                      ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                      ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                      ByRef pTotalRegistros As Integer,
                                      ByRef detResp As DetalleRespuesta) As List(Of FamiliasBE) Implements IServicioCatalogos.GetListadoFamilia
        Dim famBL As FamiliasBL = New FamiliasBL
        detResp = New DetalleRespuesta()
        Try
            Return famBL.GetListadoFamilias(tokenConexion, DesFamilia, ClaFamilia, Status, pRegistroInicial, pPageSize, pSortColumn,
                                            pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Listado de las Familias: " & ex.Message)
            Return Nothing
        Finally
            famBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoImpuestoLocalOK"
    Public Function RegistrarImpLocal(ByVal tokenConexion As String, ByVal ImpLocal As ImpLocalBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarImpLocal
        Dim ImpLocalBL As ImpLocalBL = New ImpLocalBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ImpLocalBL.RegistrarImpLocal(tokenConexion, ImpLocal, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar impuesto local: " & ex.Message)
            Return False
        Finally
            ImpLocalBL = Nothing
        End Try
    End Function

    Public Function ActualizaImpLocal(ByVal tokenConexion As String, ByVal ImpLocal As ImpLocalBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaImpLocal
        Dim ImpLocalBL As ImpLocalBL = New ImpLocalBL
        detResp = New DetalleRespuesta()
        Try
            Return (ImpLocalBL.ActualizaImpLocal(tokenConexion, ImpLocal, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos del Impuesto Local: " & ex.Message)
            Return False
        Finally
            ImpLocalBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusImpuestoLocal(ByVal tokenConexion As String, ByVal Id As Integer, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusImpuestoLocal
        Dim ImpLocalBL As ImpLocalBL = New ImpLocalBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ImpLocalBL.CambiaEstatusImpLocal(tokenConexion, Id, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus del Impuesto Local: " & ex.Message & vbCrLf)
            Return False
        Finally
            ImpLocalBL = Nothing
        End Try
    End Function

    Public Function CambiaAfectaIVAImpuestoLocal(ByVal tokenConexion As String, ByVal Id As Integer, ByVal setAfectaIVA As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaAfectaIVAImpuestoLocal
        Dim ImpLocalBL As ImpLocalBL = New ImpLocalBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ImpLocalBL.CambiaAfectaIVAImpLocal(tokenConexion, Id, setAfectaIVA, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar Afecta IVA del Impuesto Local: " & ex.Message & vbCrLf)
            Return False
        Finally
            ImpLocalBL = Nothing
        End Try
    End Function

    Public Function GetImpLocal(ByVal tokenConexion As String, ByVal IdImpLocal As Integer, ByRef detResp As DetalleRespuesta) As ImpLocalBE Implements IServicioCatalogos.GetImpLocal
        Dim ImpLocalBL As ImpLocalBL = New ImpLocalBL
        detResp = New DetalleRespuesta()
        Try
            Return ImpLocalBL.GetImpLocal(tokenConexion, IdImpLocal, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener información del Impuesto Local: " & ex.Message)
            Return Nothing
        Finally
            ImpLocalBL = Nothing
        End Try
    End Function

    Public Function GetListadoImpLocal(ByVal tokenConexion As String, ByVal tipoImpuesto As Enumeraciones.tipoImpuestosLocalesParaBusquedas,
                                ByVal tipoStatus As Enumeraciones.estatusParaBusquedas, ByVal tipoAffIVA As Enumeraciones.tipoAfectaIVAParaBusquedas,
                                ByRef detResp As DetalleRespuesta) As List(Of ImpLocalBE) Implements IServicioCatalogos.GetListadoImpLocal
        Dim ImpLocalBL As ImpLocalBL = New ImpLocalBL
        detResp = New DetalleRespuesta()
        Try
            Return ImpLocalBL.GetListadoImpLocal(tokenConexion, tipoImpuesto, tipoStatus, tipoAffIVA, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener listado de Impuestos Locales: " & ex.Message)
            Return Nothing
        Finally
            ImpLocalBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoAlumnosOK"

    Public Function RegistrarAlumno(ByVal tokenConexion As String, ByVal Alumno As AlumnosBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarAlumno
        Dim alumBL As AlumnosBL = New AlumnosBL()
        detResp = New DetalleRespuesta()
        Try
            Return (alumBL.RegistrarAlumno(tokenConexion, Alumno, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar el Alumno: " & ex.Message)
            Return False
        Finally
            alumBL = Nothing
        End Try
    End Function

    Public Function ActualizaAlumno(ByVal tokenConexion As String, ByVal Alumno As AlumnosBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaAlumno
        Dim alumBL As AlumnosBL = New AlumnosBL
        detResp = New DetalleRespuesta()
        Try
            Return (alumBL.ActualizaAlumno(tokenConexion, Alumno, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos del Alumno: " & ex.Message)
            Return False
        Finally
            alumBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusAlumno(ByVal tokenConexion As String, ByVal Id As Integer, ByVal setActivo As Boolean,
                                          ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusAlumno
        Dim alumBL As AlumnosBL = New AlumnosBL
        detResp = New DetalleRespuesta()
        Try
            Return (alumBL.CambiaEstatus(tokenConexion, Id, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus del Alumno: " & ex.Message & vbCrLf)
            Return False
        Finally
            alumBL = Nothing
        End Try
    End Function

    Public Function GetAlumnoById(ByVal tokenConexion As String, ByVal IdAlumno As Integer, ByRef detResp As DetalleRespuesta) As AlumnosBE Implements IServicioCatalogos.GetAlumnoById
        Dim alumBL As AlumnosBL = New AlumnosBL
        detResp = New DetalleRespuesta()
        Try
            Return alumBL.GetAlumnoById(tokenConexion, IdAlumno, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Alumno: " & ex.Message)
            Return Nothing
        Finally
            alumBL = Nothing
        End Try
    End Function

    Public Function GetAlumnoByCurp(ByVal tokenConexion As String, ByVal Curp As String, ByRef detResp As DetalleRespuesta) As AlumnosBE Implements IServicioCatalogos.GetAlumnoByCurp
        Dim alumBL As AlumnosBL = New AlumnosBL
        detResp = New DetalleRespuesta()
        Try
            Return alumBL.GetAlumnoByCurp(tokenConexion, Curp, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Alumno: " & ex.Message)
            Return Nothing
        Finally
            alumBL = Nothing
        End Try
    End Function

    Public Function GetListadoAlumnos(ByVal tokenConexion As String, ByVal Nombre As String, ByVal Curp As String,
                                      ByVal Nivel As AlumnosBE.EstatusNivel, ByVal estatus As Enumeraciones.estatusParaBusquedas,
                                      ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                       ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                       ByRef pTotalRegistros As Integer,
                                       ByRef detResp As DetalleRespuesta) As List(Of AlumnosBE) Implements IServicioCatalogos.GetListadoAlumnos
        Dim alumBL As AlumnosBL = New AlumnosBL
        detResp = New DetalleRespuesta()
        Try
            Return alumBL.GetListadoAlumnos(tokenConexion, Nombre, Curp, Nivel, estatus, pRegistroInicial, pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Listado de los Alumnos: " & ex.Message)
            Return Nothing
        Finally
            alumBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoUbicacionesOK"
    Public Function RegistrarUbicacion(ByVal tokenConexion As String, ByVal Ubicacion As UbicacionBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarUbicacion
        Dim UbicacionBL As UbicacionBL = New UbicacionBL()
        detResp = New DetalleRespuesta()
        Try
            Return (UbicacionBL.RegistrarUbicacion(tokenConexion, Ubicacion, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar Ubicación: " & ex.Message)
            Return False
        Finally
            UbicacionBL = Nothing
        End Try
    End Function

    Public Function ActualizaUbicacion(ByVal tokenConexion As String, ByVal Ubicacion As UbicacionBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaUbicacion
        Dim UbicacionBL As UbicacionBL = New UbicacionBL
        detResp = New DetalleRespuesta()
        Try
            Return (UbicacionBL.ActualizaUbicacion(tokenConexion, Ubicacion, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos de la Ubicación: " & ex.Message)
            Return False
        Finally
            UbicacionBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusUbicacion(ByVal tokenConexion As String, ByVal Id As Integer, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusUbicacion
        Dim UbicacionBL As UbicacionBL = New UbicacionBL
        detResp = New DetalleRespuesta()
        Try
            Return (UbicacionBL.CambiaEstatus(tokenConexion, Id, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar estatus de la Ubicación: " & ex.Message)
            Return False
        Finally
            UbicacionBL = Nothing
        End Try
    End Function

    Public Function GetUbicacion(ByVal tokenConexion As String, ByVal IdUbicacion As Integer, ByRef detResp As DetalleRespuesta) As UbicacionBE Implements IServicioCatalogos.GetUbicacion
        Dim UbicacionBL As UbicacionBL = New UbicacionBL
        detResp = New DetalleRespuesta()
        Try
            Return UbicacionBL.GetUbicacion(tokenConexion, IdUbicacion, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener información de la Ubicación: " & ex.Message)
            Return Nothing
        Finally
            UbicacionBL = Nothing
        End Try
    End Function

    Public Function GetListadoUbicaciones(ByVal tokenConexion As String, ByVal estatus As Enumeraciones.estatusParaBusquedas,
                                          ByRef detResp As DetalleRespuesta) As List(Of UbicacionBE) Implements IServicioCatalogos.GetListadoUbicaciones
        Dim UbicacionBL As UbicacionBL = New UbicacionBL
        detResp = New DetalleRespuesta()
        Try
            Return UbicacionBL.GetListadoUbicaciones(tokenConexion, estatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Listado de Ubicaciones: " & ex.Message)
            Return Nothing
        Finally
            UbicacionBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoVendedores_OK"
    Public Function RegistrarVendedor(ByVal tokenConexion As String, ByVal Vendedor As VendedoresBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarVendedor
        Dim vendBL As VendedoresBL = New VendedoresBL()
        detResp = New DetalleRespuesta()
        Try
            Return (vendBL.RegistrarVendedor(tokenConexion, Vendedor, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar el Vendedor " & ex.Message & vbCrLf)
            Return False
        Finally
            vendBL = Nothing
        End Try
    End Function

    Public Function ActualizaVendedor(ByVal tokenConexion As String, ByVal Vendedor As VendedoresBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaVendedor
        Dim vendBL As VendedoresBL = New VendedoresBL
        detResp = New DetalleRespuesta()
        Try
            Return (vendBL.ActualizaVendedor(tokenConexion, Vendedor, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos del Vendedor: " & ex.Message & vbCrLf)
            Return False
        Finally
            vendBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusVendedor(ByVal tokenConexion As String, ByVal IdVendedor As Integer,
                                          ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusVendedor
        Dim vendBL As VendedoresBL = New VendedoresBL
        detResp = New DetalleRespuesta()
        Try
            Return (vendBL.CambiaEstatusVendedor(tokenConexion, IdVendedor, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus del Vendedor: " & ex.Message & vbCrLf)
            Return False
        Finally
            vendBL = Nothing
        End Try
    End Function

    Public Function GetVendedorByClave(ByVal tokenConexion As String, ByVal Clave As String, ByRef detResp As DetalleRespuesta) As VendedoresBE Implements IServicioCatalogos.GetVendedorByClave
        Dim vendBL As VendedoresBL = New VendedoresBL
        detResp = New DetalleRespuesta()
        Try
            Return vendBL.GetVendedorByClave(tokenConexion, Clave, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Vendedor: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            vendBL = Nothing
        End Try
    End Function

    Public Function GetListadoVendedores(ByVal tokenConexion As String, ByVal Nombre As String, ByVal tipoEstatus As Enumeraciones.estatusParaBusquedas,
                                         ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                         ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                         ByRef pTotalRegistros As Integer,
                                         ByRef detResp As DetalleRespuesta) As List(Of VendedoresBE) Implements IServicioCatalogos.GetListadoVendedores
        Dim vendBL As VendedoresBL = New VendedoresBL
        detResp = New DetalleRespuesta()
        Try
            Return vendBL.GetListadoVendedores(tokenConexion, Nombre, tipoEstatus, pRegistroInicial, pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Listado de Vendedores: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            vendBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoCertificadosOK"
    Public Function RegistrarCertificado(ByVal tokenConexion As String, ByVal rfcEmpresa As String, ByVal certificado As CertificadoBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarCertificado
        Dim certBL As CertificadosBL = New CertificadosBL()
        detResp = New DetalleRespuesta()
        Try
            Return (certBL.RegistrarCertificado(tokenConexion, rfcEmpresa, certificado, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar el Certificado: " & ex.Message)
            Return False
        Finally
            certBL = Nothing
        End Try
    End Function

    Public Function CambiarEstadoCertificado(ByVal tokenConexion As String, ByVal numCertif As String, ByVal nuevoEstado As CertificadoBE.estadoCertificado,
                                             ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiarEstadoCertificado
        Dim certifBL As CertificadosBL = New CertificadosBL()
        detResp = New DetalleRespuesta()
        Try
            Return (certifBL.CambiarEstadoCertificado(tokenConexion, numCertif, nuevoEstado, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar estado de certificado: " & ex.Message)
            Return False
        Finally
            certifBL = Nothing
        End Try
    End Function

    Public Function EstablecerCertificadoDeCancelacion(ByVal tokenConexion As String, ByVal numCertif As String, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.EstablecerCertificadoDeCancelacion
        Dim certifBL As CertificadosBL = New CertificadosBL()
        detResp = New DetalleRespuesta()
        Try
            Return (certifBL.EstablecerCertificadoDeCancelacion(tokenConexion, numCertif, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al establecer Certificado de Cancelación: " & ex.Message)
            Return False
        Finally
            certifBL = Nothing
        End Try
    End Function

    Public Function GetCertificado(ByVal tokenConexion As String, ByVal numCertif As String, ByRef detResp As DetalleRespuesta) As CertificadoBE Implements IServicioCatalogos.GetCertificado
        Dim certBL As CertificadosBL = New CertificadosBL()
        detResp = New DetalleRespuesta
        Try
            Return certBL.GetCertificado(tokenConexion, numCertif, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Certificado: " & ex.Message)
            Return Nothing
        Finally
            certBL = Nothing
        End Try
    End Function

    Public Function GetCertificadoDeCancelacion(ByVal tokenConexion As String, ByRef detResp As DetalleRespuesta) As CertificadoBE _
        Implements IServicioCatalogos.GetCertificadoDeCancelacion
        Dim certBL As CertificadosBL = New CertificadosBL()
        detResp = New DetalleRespuesta
        Try
            Return certBL.GetCertificadoDeCancelacion(tokenConexion, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Certificado de Cancelación: " & ex.Message)
            Return Nothing
        Finally
            certBL = Nothing
        End Try
    End Function

    ''' <summary>
    ''' Retorna el listado de certificados, sin los certificados como tales (archivos cer y key) ni la contraseña privada de los certificados
    ''' </summary>
    ''' <param name="tokenConexion"></param>
    ''' <param name="detResp"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Function GetListadoCertificados(ByVal tokenConexion As String, ByVal tipo As Enumeraciones.tiposCertificadosParaBusquedas,
                                    ByVal estatus As Enumeraciones.estatusParaBusquedas, ByRef detResp As DetalleRespuesta) As List(Of CertificadoBE) Implements IServicioCatalogos.GetListadoCertificados
        Dim certBL As CertificadosBL = New CertificadosBL()
        detResp = New DetalleRespuesta
        Try
            Return certBL.GetListadoCertificados(tokenConexion, tipo, estatus, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener listado de Certificados: " & ex.Message)
            Return Nothing
        Finally
            certBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoTiposDeProductosOK"
    Public Function RegistrarTipoProducto(ByVal tokenConexion As String, ByVal tipoProd As TiposProductos, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarTipoProducto
        Dim tipProdBL As TiposProductosBL = New TiposProductosBL()
        detResp = New DetalleRespuesta()
        Try
            Return (tipProdBL.RegistrarTipoDeProducto(tokenConexion, tipoProd, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar el Tipo de Producto: " & ex.Message)
            Return False
        Finally
            tipProdBL = Nothing
        End Try
    End Function

    Public Function ActualizarTipoProducto(ByVal tokenConexion As String, ByVal tipoProd As TiposProductos, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizarTipoProducto
        Dim tipProdBL As TiposProductosBL = New TiposProductosBL()
        detResp = New DetalleRespuesta()
        Try
            Return (tipProdBL.ActualizaTipoDeProducto(tokenConexion, tipoProd, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos del Tipo de Producto: " & ex.Message)
            Return False
        Finally
            tipProdBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusTiposProductos(ByVal tokenConexion As String, ByVal Clave As String, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusTiposProductos
        Dim tipProdBL As TiposProductosBL = New TiposProductosBL
        detResp = New DetalleRespuesta()
        Try
            Return (tipProdBL.CambiaEstatus(tokenConexion, Clave, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus del Tipo de Producto: " & ex.Message & vbCrLf)
            Return False
        Finally
            tipProdBL = Nothing
        End Try
    End Function

    Public Function GetTipoProducto(ByVal tokenConexion As String, ByVal Clave As String, ByRef detResp As DetalleRespuesta) As TiposProductos Implements IServicioCatalogos.GetTipoProducto
        Dim tipProdBL As TiposProductosBL = New TiposProductosBL()
        detResp = New DetalleRespuesta()
        Try
            Return tipProdBL.GetTipoProducto(tokenConexion, Clave, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener información del Tipo de Producto: " & ex.Message)
            Return Nothing
        Finally
            tipProdBL = Nothing
        End Try
    End Function

    Public Function GetListadoTiposProductos(ByVal tokenConexion As String, ByVal Clave As String, ByVal Descripcion As String,
                                            ByVal ClaveFamilia As String, ByVal estatus As Enumeraciones.estatusParaBusquedas,
                                            ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                            ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                            ByRef pTotalRegistros As Integer,
                                            ByRef detResp As DetalleRespuesta) As List(Of TiposProductos) Implements IServicioCatalogos.GetListadoTiposProductos
        Dim tipProdBL As TiposProductosBL = New TiposProductosBL()
        detResp = New DetalleRespuesta()
        Try
            Return tipProdBL.GetListadoTiposProducto(tokenConexion, Clave, Descripcion, ClaveFamilia, estatus, pRegistroInicial,
                                                     pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener listado de los Tipos de Producto: " & ex.Message)
            Return Nothing
        Finally
            tipProdBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoProductoOK"
    Public Function RegistrarProducto(ByVal tokenConexion As String, ByVal Producto As ProductoBE, ByVal ProductoAdic As ProductoAdicBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarProducto
        Dim ProductoBL As ProductoBL = New ProductoBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ProductoBL.RegistrarProducto(tokenConexion, Producto, ProductoAdic, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar producto: " & ex.Message)
            Return False
        Finally
            ProductoBL = Nothing
        End Try
    End Function

    Public Function ActualizaProducto(ByVal tokenConexion As String, ByVal Producto As ProductoBE, ByVal ProductoAdic As ProductoAdicBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaProducto
        Dim ProductoBL As ProductoBL = New ProductoBL
        detResp = New DetalleRespuesta()
        Try
            Return (ProductoBL.ActualizaProducto(tokenConexion, Producto, ProductoAdic, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos del Producto: " & ex.Message)
            Return False
        Finally
            ProductoBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusProducto(ByVal tokenConexion As String, ByVal Clave As String, ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusProducto
        Dim ProductoBL As ProductoBL = New ProductoBL
        detResp = New DetalleRespuesta()
        Try
            Return (ProductoBL.CambiaEstatus(tokenConexion, Clave, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar estatus del Producto: " & ex.Message)
            Return False
        Finally
            ProductoBL = Nothing
        End Try
    End Function

    Public Function GetProducto(ByVal tokenConexion As String, ByVal Clave As String, ByRef detResp As DetalleRespuesta, ByRef ProductoAdic As ProductoAdicBE) As ProductoBE Implements IServicioCatalogos.GetProducto
        Dim ProductoBL As ProductoBL = New ProductoBL
        detResp = New DetalleRespuesta()
        ProductoAdic = Nothing
        Try
            Return ProductoBL.GetProducto(tokenConexion, Clave, ProductoAdic, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener información del Producto: " & ex.Message)
            Return Nothing
        Finally
            ProductoBL = Nothing
        End Try
    End Function

    Public Function GetListadoProducto(ByVal tokenConexion As String, ByVal Clave As String, ByVal Nombre As String, ByVal UdeM As Integer,
                                       ByVal Status As Enumeraciones.estatusParaBusquedas,
                                       ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                       ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                       ByRef pTotalRegistros As Integer,
                                       ByRef detResp As DetalleRespuesta) As List(Of ProductoBE) Implements IServicioCatalogos.GetListadoProducto
        Dim ProductoBL As ProductoBL = New ProductoBL
        detResp = New DetalleRespuesta()
        Try
            Return ProductoBL.GetListadoProducto(tokenConexion, Clave, Nombre, UdeM, Status,
                                                 pRegistroInicial, pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener listado de Producto: " & ex.Message)
            Return Nothing
        Finally
            ProductoBL = Nothing
        End Try
    End Function
#End Region

#Region "CatalogoClientesOK"
    Public Function RegistrarCliente(ByVal tokenConexion As String, ByVal Cliente As ClientesBE, ByVal ClienteCom As ClientesComBE,
                                     ByVal ClienteAdic As ClientesAdicBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarCliente
        Dim CliBL As ClientesBL = New ClientesBL()
        detResp = New DetalleRespuesta()
        Try
            Return (CliBL.RegistrarCliente(tokenConexion, Cliente, ClienteCom, ClienteAdic, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar el Cliente: " & ex.Message & vbCrLf)
            Return False
        Finally
            CliBL = Nothing
        End Try
    End Function

    Public Function ActualizaCliente(ByVal tokenConexion As String, ByVal Cliente As ClientesBE, ByVal ClienteCom As ClientesComBE, ByVal ClienteAdic As ClientesAdicBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaCliente
        Dim CliBL As ClientesBL = New ClientesBL()
        detResp = New DetalleRespuesta()
        Try
            Return (CliBL.ActualizaCliente(tokenConexion, Cliente, ClienteCom, ClienteAdic, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos del Cliente: " & ex.Message & vbCrLf)
            Return False
        Finally
            CliBL = Nothing
        End Try
    End Function

    Public Function GetCliente(ByVal tokenConexion As String, ByVal IdCli As Integer, ByVal RfcCli As String,
                        ByRef clienteCom As ClientesComBE, ByRef clienteAdic As ClientesAdicBE, ByRef detResp As DetalleRespuesta) As ClientesBE Implements IServicioCatalogos.GetCliente
        Dim CliBL As ClientesBL = New ClientesBL
        detResp = New DetalleRespuesta()
        clienteCom = Nothing
        clienteAdic = Nothing
        Try
            Return CliBL.GetCliente(tokenConexion, IdCli, RfcCli, clienteCom, clienteAdic, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Cliente: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            CliBL = Nothing
        End Try
    End Function

    'Public Function GetClienteCom(ByVal tokenConexion As String, ByVal IdCli As Integer, ByRef detResp As DetalleRespuesta) As ClientesComBE Implements IServicioCatalogos.GetClienteCom
    '    Dim CliComBL As ClientesComBL = New ClientesComBL
    '    Dim CliComBE As ClientesComBE
    '    Dim codResp As Integer = 0
    '    Dim msg As String = ""
    '    detResp = New DetalleRespuesta()
    '    Try
    '        CliComBE = CliComBL.GetClienteCom(tokenConexion, IdCli, codResp, msg)
    '        If (CliComBE IsNot Nothing) Then
    '            detResp.Codigo = codResp
    '            detResp.Mensajes = msg
    '            Return CliComBE
    '        Else
    '            detResp.Codigo = codResp
    '            detResp.Mensajes = msg
    '            Return Nothing
    '        End If
    '    Catch ex As Exception
    '        detResp.Codigo = 999
    '        detResp.Mensajes = "Error al obtener Datos Comerciales del Cliente: " & ex.Message & vbCrLf
    '        Return Nothing
    '    Finally
    '        CliComBE = Nothing
    '        CliComBL = Nothing
    '        codResp = Nothing
    '        msg = Nothing
    '    End Try
    'End Function

    'Public Function GetClienteAdic(ByVal tokenConexion As String, ByVal IdCli As Integer, ByRef detResp As DetalleRespuesta) As ClientesAdicBE Implements IServicioCatalogos.GetClienteAdic
    '    Dim CliAdicBL As ClientesAdicBL = New ClientesAdicBL
    '    Dim CliAdicBE As ClientesAdicBE
    '    Dim codResp As Integer = 0
    '    Dim msg As String = ""
    '    detResp = New DetalleRespuesta()
    '    Try
    '        CliAdicBE = CliAdicBL.GetClienteAdic(tokenConexion, IdCli, codResp, msg)
    '        If (CliAdicBE IsNot Nothing) Then
    '            detResp.Codigo = codResp
    '            detResp.Mensajes = msg
    '            Return CliAdicBE
    '        Else
    '            detResp.Codigo = codResp
    '            detResp.Mensajes = msg
    '            Return Nothing
    '        End If
    '    Catch ex As Exception
    '        detResp.Codigo = 999
    '        detResp.Mensajes = "Error al obtener Datos Adicionales del Cliente: " & ex.Message & vbCrLf
    '        Return Nothing
    '    Finally
    '        CliAdicBE = Nothing
    '        CliAdicBL = Nothing
    '        codResp = Nothing
    '        msg = Nothing
    '    End Try
    'End Function

    Public Function GetListadoCliente(ByVal tokenConexion As String, ByVal RfcCli As String, ByVal CorreoElect As String, ByVal RazonSocial As String,
                                      ByVal pStatus As Enumeraciones.estatusParaBusquedas, ByVal pTipoPersona As Enumeraciones.tipoPersonas,
                                      ByVal pTipoContrib As Enumeraciones.tipoContribuyente,
                                      ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                      ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                      ByRef pTotalRegistros As Integer,
                                      ByRef detResp As DetalleRespuesta) As List(Of ClientesBE) Implements IServicioCatalogos.GetListadoCliente
        Dim CliBL As ClientesBL = New ClientesBL
        detResp = New DetalleRespuesta()
        Try
            Return CliBL.GetListadoCliente(tokenConexion, RfcCli, CorreoElect, RazonSocial, pStatus, pTipoPersona, pTipoContrib,
                                           pRegistroInicial, pPageSize, pSortColumn, pSortDirection, pTotalRegistros,
                                             detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Listado de Clientes: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            CliBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusCliente(ByVal tokenConexion As String, ByVal pId As Integer, ByVal pRfc As String,
                                         ByVal setActivo As Boolean, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusCliente
        Dim CliBL As ClientesBL = New ClientesBL()
        detResp = New DetalleRespuesta()
        Try
            Return (CliBL.CambiaEstatus(tokenConexion, pId, pRfc, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar estatus del Cliente: " & ex.Message & vbCrLf)
            Return False
        Finally
            CliBL = Nothing
        End Try
    End Function

    Public Function GetListadoClasificacionCliente(ByVal tokenConexion As String, ByRef detResp As DetalleRespuesta) As List(Of String) Implements IServicioCatalogos.GetListadoClasificacionCliente
        Dim cteBl As ClientesBL = New ClientesBL
        detResp = New DetalleRespuesta()
        Try
            Return cteBl.getListadoClasificacionesCliente(tokenConexion, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener datos del Listado de Clasificaciones de Clientes: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            cteBl = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoContactoClienteOK"
    Public Function RegistrarContactoCliente(ByVal tokenConexion As String, ByVal ContactoCliente As ContactoClienteBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarContactoCliente
        Dim ContactoClienteBL As ContactoClienteBL = New ContactoClienteBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ContactoClienteBL.RegistrarContactoCliente(tokenConexion, ContactoCliente, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al registrar el Contacto del Cliente: " & ex.Message & vbCrLf)
            Return False
        Finally
            ContactoClienteBL = Nothing
        End Try
    End Function

    Public Function ActualizaContactoCliente(ByVal tokenConexion As String, ByVal ContactoCliente As ContactoClienteBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaContactoCliente
        Dim ContactoClienteBL As ContactoClienteBL = New ContactoClienteBL
        detResp = New DetalleRespuesta()
        Try
            Return (ContactoClienteBL.ActualizaContactoCliente(tokenConexion, ContactoCliente, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al actualizar datos del Contacto del Cliente: " & ex.Message & vbCrLf)
            Return False
        Finally
            ContactoClienteBL = Nothing
        End Try
    End Function

    Public Function GetContactoCliente(ByVal tokenConexion As String, ByVal IdContactoCliente As Integer, ByVal idCliente As Integer, ByRef detResp As DetalleRespuesta) As ContactoClienteBE Implements IServicioCatalogos.GetContactoCliente
        Dim ContactoClienteBL As ContactoClienteBL = New ContactoClienteBL
        detResp = New DetalleRespuesta()
        Try
            Return ContactoClienteBL.GetContactoCliente(tokenConexion, IdContactoCliente, idCliente, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener información del Contacto del Cliente: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            ContactoClienteBL = Nothing
        End Try
    End Function

    Public Function GetContactosPorCliente(ByVal tokenConexion As String, ByVal idCliente As Integer,
                                            ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                            ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                            ByRef pTotalRegistros As Integer,
                                           ByRef detResp As DetalleRespuesta) As List(Of ContactoClienteBE) Implements IServicioCatalogos.GetContactosPorCliente
        Dim ContactoClienteBL As ContactoClienteBL = New ContactoClienteBL
        detResp = New DetalleRespuesta()
        Try
            Return ContactoClienteBL.GetListadoContactoCliente(tokenConexion, idCliente, pRegistroInicial, pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     "Error al obtener listado de los Contactos de Clientes: " & ex.Message & vbCrLf)
            Return Nothing
        Finally
            ContactoClienteBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoProveedoresOK"

    Public Function RegistrarProveedor(ByVal tokenConexion As String, ByVal Proveedor As ProveedoresBE, ByRef detResp As DetalleRespuesta) As Boolean _
                    Implements IServicioCatalogos.RegistrarProveedor
        Dim ProvBL As ProveedoresBL = New ProveedoresBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ProvBL.RegistrarProveedor(tokenConexion, Proveedor, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al registrar el Proveedor: " & ex.Message)
            Return False
        Finally
            ProvBL = Nothing
        End Try
    End Function

    Public Function ActualizaProveedor(ByVal tokenConexion As String, ByVal Proveedor As ProveedoresBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaProveedor
        Dim ProvBL As ProveedoresBL = New ProveedoresBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ProvBL.ActualizaProveedor(tokenConexion, Proveedor, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar datos del Proveedor: " & ex.Message)
            Return False
        Finally
            ProvBL = Nothing
        End Try
    End Function

    Public Function CambiaEstatusProveedor(ByVal tokenConexion As String, ByVal CvePro As String, ByVal setActivo As Boolean,
                                           ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.CambiaEstatusProveedor
        Dim ProvBL As ProveedoresBL = New ProveedoresBL()
        detResp = New DetalleRespuesta()
        Try
            Return (ProvBL.CambiaEstatus(tokenConexion, CvePro, setActivo, detResp))
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al actualizar estatus del Proveedor: " & ex.Message)
            Return False
        Finally
            ProvBL = Nothing
        End Try
    End Function

    Public Function GetProveedor(ByVal tokenConexion As String, ByVal CvePro As String, ByRef detResp As DetalleRespuesta) As ProveedoresBE Implements IServicioCatalogos.GetProveedor
        Dim ProvBL As ProveedoresBL = New ProveedoresBL
        detResp = New DetalleRespuesta()
        Try
            Return ProvBL.GetProveedor(tokenConexion, CvePro, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Proveedor: " & ex.Message)
            Return Nothing
        Finally
            ProvBL = Nothing
        End Try
    End Function

    Public Function GetListadoProveedor(ByVal tokenConexion As String, ByVal RfcPro As String, ByVal CorreoElect As String, ByVal RazonSocial As String,
                                        ByVal estatus As Enumeraciones.estatusParaBusquedas,
                                        ByVal pRegistroInicial As Integer, ByVal pPageSize As Integer,
                                        ByVal pSortColumn As Enumeraciones.campoOrdenamiento, ByVal pSortDirection As Enumeraciones.tipoOrdenamiento,
                                        ByRef pTotalRegistros As Integer,
                                        ByRef detResp As DetalleRespuesta) As List(Of ProveedoresBE) Implements IServicioCatalogos.GetListadoProveedor
        Dim ProvBL As ProveedoresBL = New ProveedoresBL
        detResp = New DetalleRespuesta()
        Try
            Return ProvBL.GetListadoProveedor(tokenConexion, RfcPro, CorreoElect, RazonSocial, estatus, pRegistroInicial,
                                              pPageSize, pSortColumn, pSortDirection, pTotalRegistros, detResp)
        Catch ex As Exception
            detResp.estableceValores(DetalleRespuesta.CodigoRespuesta.ExcepcionEnOperacion,
                                     detResp.Mensajes & "Error al obtener datos del Listado de los Proveedores: " & ex.Message)
            Return Nothing
        Finally
            ProvBL = Nothing
        End Try
    End Function

#End Region

#Region "CatalogoDiasCredito"
    Public Function RegistrarDiasCredito(ByVal tokenConexion As String, ByVal DiasCredito As DiasCreditoBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.RegistrarDiasCredito
        Dim DiasCreditoBL As DiasCreditoBL = New DiasCreditoBL()
        Dim codResp As Integer = 0
        Dim msg As String = ""
        detResp = New DetalleRespuesta()
        Try
            If (DiasCreditoBL.RegistrarDiasCredito(tokenConexion, DiasCredito, codResp, msg)) Then
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return True
            Else
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return False
            End If
        Catch ex As Exception
            detResp.Codigo = 999
            detResp.Mensajes = "Error al registrar el Número de Días de Crédito: " & ex.Message & vbCrLf
            Return False
        Finally
            DiasCreditoBL = Nothing
            codResp = Nothing
            msg = Nothing
        End Try
    End Function

    Public Function ActualizaDiasCredito(ByVal tokenConexion As String, ByVal DiasCredito As DiasCreditoBE, ByRef detResp As DetalleRespuesta) As Boolean Implements IServicioCatalogos.ActualizaDiasCredito
        Dim DiasCreditoBL As DiasCreditoBL = New DiasCreditoBL
        Dim codResp As Integer = 0
        Dim msg As String = ""
        detResp = New DetalleRespuesta()
        Try
            If (DiasCreditoBL.ActualizaDiasCredito(tokenConexion, DiasCredito, codResp, msg)) Then
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return True
            Else
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return False
            End If
        Catch ex As Exception
            detResp.Codigo = 999
            detResp.Mensajes = "Error al actualizar datos de Número de Días de Crédito: " & ex.Message & vbCrLf
            Return False
        Finally
            DiasCreditoBL = Nothing
            codResp = Nothing
            msg = Nothing
        End Try
    End Function

    Public Function GetDiasCredito(ByVal tokenConexion As String, ByVal IdDiasCredito As Integer, ByRef detResp As DetalleRespuesta) As DiasCreditoBE Implements IServicioCatalogos.GetDiasCredito
        Dim DiasCreditoBL As DiasCreditoBL = New DiasCreditoBL
        Dim DiasCreditoBE As DiasCreditoBE
        Dim codResp As Integer = 0
        Dim msg As String = ""
        detResp = New DetalleRespuesta()
        Try
            DiasCreditoBE = DiasCreditoBL.GetDiasCredito(tokenConexion, IdDiasCredito, codResp, msg)
            If (DiasCreditoBE IsNot Nothing) Then
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return DiasCreditoBE
            Else
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return Nothing
            End If
        Catch ex As Exception
            detResp.Codigo = 999
            detResp.Mensajes = "Error al obtener información de Número de Días de Crédito: " & ex.Message & vbCrLf
            Return Nothing
        Finally
            DiasCreditoBE = Nothing
            DiasCreditoBL = Nothing
            codResp = Nothing
            msg = Nothing
        End Try
    End Function

    Public Function GetListadoDiasCredito(ByVal tokenConexion As String, ByRef detResp As DetalleRespuesta) As List(Of DiasCreditoBE) Implements IServicioCatalogos.GetListadoDiasCredito
        Dim DiasCreditoBL As DiasCreditoBL = New DiasCreditoBL
        Dim ListDiasCreditoBE As List(Of DiasCreditoBE)
        Dim codResp As Integer = 0
        Dim msg As String = ""
        detResp = New DetalleRespuesta()
        Try
            ListDiasCreditoBE = DiasCreditoBL.GetListadoDiasCredito(tokenConexion, codResp, msg)
            If (ListDiasCreditoBE IsNot Nothing) Then
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return ListDiasCreditoBE
            Else
                detResp.Codigo = codResp
                detResp.Mensajes = msg
                Return Nothing
            End If
        Catch ex As Exception
            detResp.Codigo = 999
            detResp.Mensajes = "Error al obtener listado de Número de Días de Crédito: " & ex.Message & vbCrLf
            Return Nothing
        Finally
            ListDiasCreditoBE = Nothing
            DiasCreditoBL = Nothing
            codResp = Nothing
            msg = Nothing
        End Try
    End Function
#End Region

End Class
